home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / jpi / music.bas < prev    next >
BASIC Source File  |  1998-01-07  |  2KB  |  65 lines

  1. Attribute VB_Name = "Music"
  2. Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
  3. Public Const MaxMusicFiles = 100
  4. Public MusicOn As Boolean
  5. Const NOMUSICFILE = ""
  6. Private Type musfiles
  7.   Filename As String
  8.   TrackTitle As String
  9. End Type
  10. Private Type Mus
  11.   MusicFiles(MaxMusicFiles) As musfiles
  12.   MaxMusicFiles As Integer
  13.   CurrentFile  As String
  14. End Type
  15. Public MusicData As Mus
  16. Private Const MMCONTROLMODE_STOPPED = 525
  17. Public Sub InitializeMusic()
  18. Call LoadMusicData
  19. End Sub
  20. Public Sub LoadMusicData()
  21. Call FileFunctions.OpenGameFile(File_MusicDefinitions, 1)
  22. Do
  23.   Line Input #1, a$
  24.   If a$ = FILETAG_ENDFILE Then Exit Do
  25.   If a$ = "[MUSICDEF]" Then
  26.     musicfilenum = musicfilenum + 1
  27.     Line Input #1, a$
  28.     propvalue$ = MiscFunctions.GetPropertyValue(a$)
  29.     MusicData.MusicFiles(musicfilenum).TrackTitle = propvalue$
  30.     Line Input #1, a$
  31.     propvalue$ = MiscFunctions.GetPropertyValue(a$)
  32.     MusicData.MusicFiles(musicfilenum).Filename = Directory_Music & propvalue$
  33.   End If
  34. Loop
  35. Close #1
  36. MusicData.MaxMusicFiles = musicfilenum
  37. End Sub
  38. Public Sub PlayMusicFile(Filename$)
  39. nothin = mciExecute("Play " & App.Path & "\" & Filename$)
  40. Music.MusicData.CurrentFile = Filename$
  41. End Sub
  42. Public Sub StopMusic()
  43. If MusicData.CurrentFile <> NOMUSICFILE Then nothin = mciExecute("Stop " & App.Path & "\" & Music.MusicData.CurrentFile)
  44. MusicData.CurrentFile = NOMUSICFILE
  45. End Sub
  46. Public Sub KeepMusicPlaying()
  47. If MusicData.CurrentFile <> NOMUSICFILE Then nothin = mciExecute("Play " & App.Path & "\" & MusicData.CurrentFile)
  48. End Sub
  49. Public Sub PlayTrackByIndex(TrackNum)
  50. If Music.MusicOn = True Then Call PlayMusicFile(MusicData.MusicFiles(TrackNum).Filename)
  51. End Sub
  52. Public Sub PlayTrackByName(TrackName$)
  53. If Music.MusicOn = True Then
  54.   For I = 1 To MusicData.MaxMusicFiles
  55.     If MusicData.MusicFiles(I).TrackTitle = TrackName$ Then
  56.       Call PlayMusicFile(MusicData.MusicFiles(I).Filename)
  57.       Exit For
  58.     End If
  59.   Next I
  60. End If
  61. End Sub
  62. Public Sub CloseMusicDevice()
  63. If MusicData.CurrentFile <> NOMUSICFILE Then nothin = mciExecute("Stop " & Music.MusicData.CurrentFile)
  64. End Sub
  65.